El
journaling es una mecanismo por el cual un
sistema informático puede implementar
transacciones. También se le conoce como "registro por diario".
Se basa en llevar un
journal o registro de diario en el que se almacena la información necesaria para restablecer los datos afectados por la transacción en caso de que ésta falle.
El procedimiento es básicamente el siguiente:
1. Se bloquean las estructuras de datos afectadas por la transacción para que ningún otro proceso pueda modificarlas mientras dura la transacción.
2. Se reserva un recurso para almacenar el
journal. Por lo general suelen ser unos bloques de disco, de modo que si el sistema se para de forma abrupta (corte eléctrico, avería, fallo del
sistema operativo...) el
journal siga disponible una vez reiniciado el sistema.
3. Se efectúan una a una las modificaciones en la estructura de datos. Para cada una:
1. Se apunta en el
journal como deshacer la modificación y se asegura de que esta información se escribe físicamente en el disco.
2. Se realiza la modificación.
4. Si en cualquier momento se quiere cancelar la transacción se deshacen los cambios uno a uno leyéndolos y borrándolos del
journal.
5. Si todo ha ido bien, se borra el
journal y se desbloquean las estructuras de datos afectadas.